package com.paziy.notes.core;

import com.paziy.notes.core.notes.Note;

/**
 * Types of clef keys
 *
 * @author thecederick@gmail.com (Paziy Evgeniy)
 * @version 0.1
 * @since 0.1 (07.12.13 12:14)
 */
public enum ClefType {
    G(Note.G, Octave.OneLine),
    F(Note.F, Octave.Small),
    C(Note.C, Octave.OneLine),
    NEUTRAL(null, null),
    TABLATURE(null, null);

    /**
     * The note with key is shows
     */
    private Note note;

    /**
     * The octave with key is shows
     */
    private Octave octave;

    ClefType(Note note, Octave octave) {
        this.note = note;
        this.octave = octave;
    }

    /**
     * The getter for a note of current clef type
     *
     * @return note
     */
    public Note getNote() {
        return note;
    }

    /**
     * The getter for an octave of current clef type
     *
     * @return octave
     */
    public Octave getOctave() {
        return octave;
    }
}
